package com.alex.designPattern.strategy;

//import dp.HibernateDao;
import com.alex.designPattern.DaoType;
import com.alex.designPattern.IbatitsDao;

public class Client {

	public static void main(String[] args) {
//		testStratagemContext();
//		testStratagemFactory();
		testStratagemRef();
	}
	
	public static void testStratagemContext(){
//		StratagemContext context = new StratagemContext(new HibernateDao());
		StrategyContext stratagem = new StrategyContext(new IbatitsDao());
		System.out.println(stratagem.getObject());
	}
	
	public static void testStratagemFactory(){
//		StratagemFactory stratagem = new StratagemFactory(DaoType.HIBERNATE);
		StrategyFactory stratagem = new StrategyFactory(DaoType.IBATITS);
		System.out.println(stratagem.getObject());
	}
	
	public static void testStratagemRef(){
		try {
//			StratagemReflection stratagem = new StratagemReflection("dp.HibernateDao");
//			StratagemReflection stratagem = new StratagemReflection("dp.IbatitsDao");
			StrategyReflection stratagem = new StrategyReflection("dp.stratagem.JdbcDao");
			System.out.println(stratagem.getObject());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
